[hvm] Move the mapping of the shared IO page slightly earlier
authorsos22@douglas.cl.cam.ac.uk <sos22@douglas.cl.cam.ac.uk>
Tue, 8 Aug 2006 10:17:52 +0000 (11:17 +0100)
committersos22@douglas.cl.cam.ac.uk <sos22@douglas.cl.cam.ac.uk>
Tue, 8 Aug 2006 10:17:52 +0000 (11:17 +0100)
in the initialisation sequence for HVM guests, so that we can
write vp_eport into the shared after creating the port.

Signed-off-by: Steven Smith <ssmith@xensource.com>
xen/arch/x86/hvm/hvm.c
xen/include/asm-x86/hvm/hvm.h

index cbc2a5bd4a2a41023cf7b6c48da0d5a27481362c..9c0c3e00d54fc11d5823907af3b4fe578e98506a 100644 (file)
@@ -175,7 +175,6 @@ void hvm_setup_platform(struct domain* d)
     }
 
     hvm_zap_iommu_pages(d);
-    hvm_map_io_shared_page(v);
 
     platform = &d->arch.hvm_domain;
     pic_init(&platform->vpic, pic_irq_request, &platform->interrupt_request);
index 04faa8971c25a492ba27df05582b0802243a0a3f..95b9696eb88a1e13b68d3f734c297901129ea9ea 100644 (file)
@@ -77,12 +77,17 @@ hvm_disable(void)
         hvm_funcs.disable();
 }
 
+void hvm_map_io_shared_page(struct vcpu *v);
+
 static inline int
 hvm_initialize_guest_resources(struct vcpu *v)
 {
+    int ret = 1;
     if ( hvm_funcs.initialize_guest_resources )
-        return hvm_funcs.initialize_guest_resources(v);
-    return 0;
+        ret = hvm_funcs.initialize_guest_resources(v);
+    if ( ret == 1 )
+        hvm_map_io_shared_page(v);
+    return ret;
 }
 
 static inline void